package com.feiyisys.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.feiyisys.dto.FavoriteActivityResponseDTO;
import com.feiyisys.entity.FavoriteActivity;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 用户收藏活动记录表 服务类
 * </p>
 *
 * @author wq
 * @since 2025-10-10
 */
public interface FavoriteActivityService extends IService<FavoriteActivity> {

    /**
     * 添加收藏
     * @param userId 用户ID
     * @param activityId 活动ID
     * @return 是否收藏成功
     */
    boolean addFavorite(Long userId, Long activityId);

    /**
     * 取消收藏
     * @param userId 用户ID
     * @param activityId 活动ID
     * @return 是否取消成功
     */
    boolean removeFavorite(Long userId, Long activityId);

    /**
     * 判断是否已收藏
     * @param userId 用户ID
     * @param activityId 活动ID
     * @return 是否已收藏
     */
    boolean isFavorite(Long userId, Long activityId);

    /**
     * 分页获取收藏的活动
     * @param userId 用户ID
     * @param current 当前页码
     * @param size 每页大小
     * @return 收藏活动分页数据
     */
    IPage<FavoriteActivityResponseDTO> getFavoriteActivities(Long userId, Long current, Long size);

}
